﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

void selectSort(char** arr, int len)
{
	for (int i = 0; i < len; ++i)
	{
		//5.从小到大，选择排序；
		int min = i;
		for (int j = i + 1; j < len; ++j)
		{
			//6.如果arr[j]比arr[min]小，就把arr[j]放到arr[min]上；
			if (strcmp(arr[j], arr[min]) < 0)
			{
				min = j;
			}
		}
		//7.交换；内层循环走一圈，就能找出最小的元素arr[min]，然后替换arr[0]；
		if (min != i)
		{
			char* temp = arr[min];
			arr[min] = arr[i];
			arr[i] = temp;
		}
	}
}
void printPArrSelectSort(char** arr, int len)
{
	for (int i = 0; i < len; ++i)
	{
		printf("4.输出指针类型数组arr的元素，字符串常量arr[%d]：%s\n", i, arr[i]);
	}
}
void testPArrSelectSort()
{
	//1.指针类型数组pArr，即char**，存储char*类型指针；
	char* pArr[] = { "ddd","ccc","fff","hhh","ppp","rrr" };
	int len = sizeof(pArr) / sizeof(char*);
	printPArrSelectSort(pArr, len);//ddd，...，rrr
	//2.选择排序；
	selectSort(pArr, len);
	printf("-------------------3.排序前和排序后，输出pArr的元素；---------------------\n");
	printPArrSelectSort(pArr, len);//ccc，...，rrr
}

//main204：指针数组选择排序
int main204()
{
	testPArrSelectSort();

	system("pause");
	return EXIT_SUCCESS;
}